package com.designpattern.softwaredesignpatternstudy.pattern.adapter;

import com.designpattern.softwaredesignpatternstudy.pattern.adapter.extend.Print;
import com.designpattern.softwaredesignpatternstudy.pattern.adapter.extend.PrintBanner;

/**
 * @author LitchiShell
 * @description: Adapter模式有以下两种:
 * 1.类适配器模式（使用继承的适配器）
 * 2.对象适配器（使用委托的适配器）
 * 涉及的类：
 * Banner类（showWithPare、showWithAster）
 * PrintBanner类
 * Print接口（printWeak、printStrong）
 * 描述：
 * 使用Banner类编写一个实现了Print接口的类，也就是说要将一个"交流100伏特电压"转换成"直流12伏特电压"的适配器
 * @create 2022-02-01
 */
public class Main {
    public static void main(String[] args) {
        /* 类适配器模式（使用继承的适配器）*/
        Print p = new PrintBanner("Hello");
        p.printWeak();
        p.printStrong();

        System.out.println("*********");

        /* 对象适配器（使用委托的适配器）*/
        Print print = new PrintBanner("HELLO");
        print.printWeak();
        print.printStrong();
    }
}
